﻿using System;
using System.Collections.Generic;
using System.Web;

/// <summary>
/// Summary description for CreditCardDetails
/// </summary>
namespace CE.CreditCard
{
    public class CreditCardDetails
    {
        //Cards Info field name
        private Int64 _ccid;
        private Int32 _financialinstitute;
        private Int32 _creditcardclass;
        private string _productname;
        private string _creditcardimage;
        private Int32 _creditcardstatus;
        private Int32 _creditcardtype;
        //Application Criteria field name
        private float _annualincomelocal;
        private float _annualincomeforeigner;
        private Int32 _minimumage;
        private Int32 _maximumage;
        //Industry Rates field name
        private float _balancetransfer;
        private Int32 _balancetransduration;
        private float _intrestratepurchase;
        private Int32 _purchaserateduration;
        private float _intrestratecash;
        //Fees & Charges field name
        private string _annualfee;
        private string _supplementaryfee;
        private float _latepaycharge;
        private float _minimumcharge;
        private float _minmonthlyrepay;
        private float _cashadvwdrawcharge;
        private bool _doller;
        private bool _percentage;
        private float _cashadvfincharge;
        //Benefits field name
        private bool _feewaiver;
        private Int32 _feewaiverduration;
        private bool _welcomegift;
        private bool _rewardpoint;
        private Int32 _rewardpointexpiry;
        private string _rewardsprivileges;
        private bool _freeinsurance;
        private Int32 _intrestfreedays;
        private bool _destinationmiles;
        private Int32 _destmilesdur;
        //Common field name
        private bool _status;
        private DateTime _createddate;
        private DateTime _modifieddate;

        public CreditCardDetails()
        {
            //
            // TODO: Add constructor logic here
            //
            ClearFields();
        }

        public Int64 CCId
        {
            get { return _ccid; }
            set { _ccid = value; }
        }

        public Int32 FinancialInstitute
        {
            get { return _financialinstitute; }
            set { _financialinstitute = value; }
        }

        public Int32 CCClass
        {
            get { return _creditcardclass; }
            set { _creditcardclass = value; }
        }

        public string ProductName
        {
            get { return _productname; }
            set { _productname = value; }
        }

        public string CreditcardImage
        {
            get { return _creditcardimage; }
            set { _creditcardimage = value; }
        }

        public Int32 CreditCardStatus
        {
            get { return _creditcardstatus; }
            set { _creditcardstatus = value; }
        }

        public Int32 CreditCardType
        {
            get { return _creditcardtype; }
            set { _creditcardtype = value; }
        }
        
        public float AnualIncomeLocal
        {
            get { return _annualincomelocal; }
            set { _annualincomelocal = value; }
        }

        public float AnualIncomeForeigner
        {
            get { return _annualincomeforeigner; }
            set { _annualincomeforeigner = value; }
        }

        public Int32 MinimumAge
        {
            get { return _minimumage; }
            set { _minimumage = value; }
        }

        public Int32 MaximumAge
        {
            get { return _maximumage; }
            set { _maximumage = value; }
        }
        
        public float BalanceTransfer
        {
            get { return _balancetransfer; }
            set { _balancetransfer = value; }
        }

        public Int32 BalanceTransDuration
        {
            get { return _balancetransduration; }
            set { _balancetransduration = value; }
        }

        public float IntrestRatePurchase
        {
            get { return _intrestratepurchase; }
            set { _intrestratepurchase = value; }
        }

        public Int32 PurchaseRateDuration
        {
            get { return _purchaserateduration; }
            set { _purchaserateduration = value; }
        }

        public float IntrestRateCash
        {
            get { return _intrestratecash; }
            set { _intrestratecash = value; }
        }
        
        public string AnualFee
        {
            get { return _annualfee; }
            set { _annualfee = value; }
        }

        public string SupplementFee
        {
            get { return _supplementaryfee; }
            set { _supplementaryfee = value; }
        }

        public float LatepayCharge
        {
            get { return _latepaycharge; }
            set { _latepaycharge = value; }
        }

        public float MinimumCharge
        {
            get { return _minimumcharge; }
            set { _minimumcharge = value; }
        }

        public float MinMonthlyRepay
        {
            get { return _minmonthlyrepay; }
            set { _minmonthlyrepay = value; }
        }

        public float CashAdvWdrawCharge
        {
            get { return _cashadvwdrawcharge; }
            set { _cashadvwdrawcharge = value; }
        }

        public bool Doller
        {
            get { return _doller; }
            set { _doller = value; }
        }

        public bool Percentage
        {
            get { return _percentage; }
            set { _percentage = value; }
        }

        public float CashAdvFinCharge
        {
            get { return _cashadvfincharge; }
            set { _cashadvfincharge = value; }
        }
        
        public bool FeeWaiver
        {
            get { return _feewaiver; }
            set { _feewaiver = value; }
        }

        public Int32 FeeWaiverDuration
        {
            get { return _feewaiverduration; }
            set { _feewaiverduration = value; }
        }

        public bool WelcomeGift
        {
            get { return _welcomegift; }
            set { _welcomegift = value; }
        }

        public bool RewardPoint
        {
            get { return _rewardpoint; }
            set { _rewardpoint = value; }
        }

        public Int32 RewardPointExpiry
        {
            get { return _rewardpointexpiry; }
            set { _rewardpointexpiry = value; }
        }

        public string RewardsPrivileges
        {
            get { return _rewardsprivileges; }
            set { _rewardsprivileges = value; }
        }

        public bool FreeInsurance
        {
            get { return _freeinsurance; }
            set { _freeinsurance = value; }
        }

        public Int32 IntrestFreeDays
        {
            get { return _intrestfreedays; }
            set { _intrestfreedays = value; }
        }

        public bool DestinationMiles
        {
            get { return _destinationmiles; }
            set { _destinationmiles = value; }
        }

        public Int32 DestMilesDur
        {
            get { return _destmilesdur; }
            set { _destmilesdur = value; }
        }

        public bool Status
        {
            get { return _status; }
            set { _status = value; }
        }

        public DateTime CreatedDate
        {
            get { return _createddate; }
            set { _createddate = value; }
        }

        public DateTime ModifiedDate
        {
            get { return _modifieddate; }
            set { _modifieddate = value; }
        }

        public void ClearFields()
        {
            //Cards Info field name
            _ccid = 0;
            _creditcardclass = -1;
            _financialinstitute = -1;
            _productname = "";
            _creditcardimage = "";
            _creditcardstatus = -1;
            _creditcardtype = -1;
            //Application Criteria field name
            _annualincomelocal = 0.0f;
            _annualincomeforeigner = 0.0f;
            _minimumage = 21;
            _maximumage = 65;
            //Industry Rates field name
            _balancetransfer = 0.0f;
            _balancetransduration = -1;
            _intrestratepurchase = 0.0f;
            _purchaserateduration = -1;
            _intrestratecash = 0.0f;
            //Fees & Charges field name
            _annualfee = "";
            _supplementaryfee = "";
            _latepaycharge = 0.0f;
            _minimumcharge = 0.0f;
            _minmonthlyrepay = 0.0f;
            _cashadvwdrawcharge = 0.0f;
            _doller = true;
            _percentage = false;
            _cashadvfincharge = 0.0f;
            //Benefits field name
            _feewaiver = false;
            _feewaiverduration = -1;
            _welcomegift = false;
            _rewardpoint = false;
            _rewardpointexpiry = -1;
            _rewardsprivileges = "";
            _freeinsurance = false;
            _intrestfreedays = -1;
            _destinationmiles = false;
            _destmilesdur = -1;
            //Common field name
            _status = true;
            _createddate = new DateTime();
            _modifieddate = new DateTime();
            _createddate = CE.Global.General.GetUTCDateTime();
            _modifieddate = CE.Global.General.GetUTCDateTime();
        }

    }
}
